home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / tools / czesc_2 / mfilemode / source / gadgets.c next >
C/C++ Source or Header  |  1994-09-05  |  6KB  |  190 lines

  1. // Gadgets.c - Copyright © 1994 Mike Austin
  2.  
  3. #include <dos/dos.h>
  4. #include <proto/gadtools.h>
  5. #include <proto/multiuser.h>
  6. #include "MFileMode.h"
  7. #include "GUI.h"
  8.  
  9. VOID SetGadgets(struct FileInfoBlock *FileInfo)
  10. {
  11.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_UID],
  12.             MainWnd,         NULL,
  13.             GTCB_Checked,    (FileInfo->fib_Protection & muFIBF_SET_UID),
  14.             TAG_END);
  15.  
  16.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_SCRIPT],
  17.             MainWnd,         NULL,
  18.             GTCB_Checked,    (FileInfo->fib_Protection & FIBF_SCRIPT),
  19.             TAG_END);
  20.  
  21.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_PURE],
  22.             MainWnd,         NULL,
  23.             GTCB_Checked,    (FileInfo->fib_Protection & FIBF_PURE),
  24.             TAG_END);
  25.  
  26.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_ARCHIVE],
  27.             MainWnd,         NULL,
  28.             GTCB_Checked,    (FileInfo->fib_Protection & FIBF_ARCHIVE),
  29.             TAG_END);
  30.  
  31.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_USER_READ],
  32.             MainWnd,         NULL,
  33.             GTCB_Checked,    !(FileInfo->fib_Protection & FIBF_READ),
  34.             TAG_END);
  35.  
  36.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_USER_WRITE],
  37.             MainWnd,         NULL,
  38.             GTCB_Checked,    !(FileInfo->fib_Protection & FIBF_WRITE),
  39.             TAG_END);
  40.  
  41.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_USER_EXECUTE],
  42.             MainWnd,         NULL,
  43.             GTCB_Checked,    !(FileInfo->fib_Protection & FIBF_EXECUTE),
  44.             TAG_END);
  45.  
  46.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_USER_DELETE],
  47.             MainWnd,         NULL,
  48.             GTCB_Checked,    !(FileInfo->fib_Protection & FIBF_DELETE),
  49.             TAG_END);
  50.  
  51.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_GROUP_READ],
  52.             MainWnd,         NULL,
  53.             GTCB_Checked,    (FileInfo->fib_Protection & FIBF_GRP_READ),
  54.             TAG_END);
  55.  
  56.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_GROUP_WRITE],
  57.             MainWnd,         NULL,
  58.             GTCB_Checked,    (FileInfo->fib_Protection & FIBF_GRP_WRITE),
  59.             TAG_END);
  60.  
  61.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_GROUP_EXECUTE],
  62.             MainWnd,         NULL,
  63.             GTCB_Checked,    (FileInfo->fib_Protection & FIBF_GRP_EXECUTE),
  64.             TAG_END);
  65.  
  66.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_GROUP_DELETE],
  67.             MainWnd,         NULL,
  68.             GTCB_Checked,    (FileInfo->fib_Protection & FIBF_GRP_DELETE),
  69.             TAG_END);
  70.  
  71.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_OTHER_READ],
  72.             MainWnd,         NULL,
  73.             GTCB_Checked,    (FileInfo->fib_Protection & FIBF_OTR_READ),
  74.             TAG_END);
  75.  
  76.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_OTHER_WRITE],
  77.             MainWnd,         NULL,
  78.             GTCB_Checked,    (FileInfo->fib_Protection & FIBF_OTR_WRITE),
  79.             TAG_END);
  80.  
  81.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_OTHER_EXECUTE],
  82.             MainWnd,         NULL,
  83.             GTCB_Checked,    (FileInfo->fib_Protection & FIBF_OTR_EXECUTE),
  84.             TAG_END);
  85.  
  86.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_OTHER_DELETE],
  87.             MainWnd,         NULL,
  88.             GTCB_Checked,    (FileInfo->fib_Protection & FIBF_OTR_DELETE),
  89.             TAG_END);
  90.  
  91.     UserInfo->uid = FileInfo->fib_OwnerUID;
  92.     muGetUserInfo(UserInfo, muKeyType_uid);
  93.  
  94.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_OWNER],
  95.             MainWnd,         NULL,
  96.             GTST_String,    FileInfo->fib_OwnerUID ? UserInfo->UserID : NULL,
  97.             TAG_END);
  98.  
  99.     GroupInfo->gid = FileInfo->fib_OwnerGID;
  100.     muGetGroupInfo(GroupInfo, muKeyType_gid);
  101.  
  102.     GT_SetGadgetAttrs(MainGadgets[GD_GAD_GROUP],
  103.             MainWnd,         NULL,
  104.             GTST_String,    FileInfo->fib_OwnerGID ? GroupInfo->GroupID : NULL,
  105.             TAG_END);
  106. }
  107.  
  108. VOID ReadGadgets(struct FileInfoBlock *FileInfo)
  109. {
  110.     if(MainGadgets[GD_GAD_UID]->Flags & GFLG_SELECTED)
  111.         FileInfo->fib_Protection |= muFIBF_SET_UID;
  112.     else
  113.         FileInfo->fib_Protection &= ~muFIBF_SET_UID;
  114.  
  115.     if(MainGadgets[GD_GAD_SCRIPT]->Flags & GFLG_SELECTED)
  116.         FileInfo->fib_Protection |= FIBF_SCRIPT;
  117.     else
  118.         FileInfo->fib_Protection &= ~FIBF_SCRIPT;
  119.  
  120.     if(MainGadgets[GD_GAD_PURE]->Flags & GFLG_SELECTED)
  121.         FileInfo->fib_Protection |= FIBF_PURE;
  122.     else
  123.         FileInfo->fib_Protection &= ~FIBF_PURE;
  124.  
  125.     if(MainGadgets[GD_GAD_ARCHIVE]->Flags & GFLG_SELECTED)
  126.         FileInfo->fib_Protection |= FIBF_ARCHIVE;
  127.     else
  128.         FileInfo->fib_Protection &= ~FIBF_ARCHIVE;
  129.  
  130.     if(MainGadgets[GD_GAD_USER_READ]->Flags & GFLG_SELECTED)
  131.         FileInfo->fib_Protection &= ~FIBF_READ;
  132.     else
  133.         FileInfo->fib_Protection |= FIBF_READ;
  134.  
  135.     if(MainGadgets[GD_GAD_USER_WRITE]->Flags & GFLG_SELECTED)
  136.         FileInfo->fib_Protection &= ~FIBF_WRITE;
  137.     else
  138.         FileInfo->fib_Protection |= FIBF_WRITE;
  139.  
  140.     if(MainGadgets[GD_GAD_USER_EXECUTE]->Flags & GFLG_SELECTED)
  141.         FileInfo->fib_Protection &= ~FIBF_EXECUTE;
  142.     else
  143.         FileInfo->fib_Protection |= FIBF_EXECUTE;
  144.  
  145.     if(MainGadgets[GD_GAD_USER_DELETE]->Flags & GFLG_SELECTED)
  146.         FileInfo->fib_Protection &= ~FIBF_DELETE;
  147.     else
  148.         FileInfo->fib_Protection |= FIBF_DELETE;
  149.  
  150.     if(MainGadgets[GD_GAD_GROUP_READ]->Flags & GFLG_SELECTED)
  151.         FileInfo->fib_Protection |= FIBF_GRP_READ;
  152.     else
  153.         FileInfo->fib_Protection &= ~FIBF_GRP_READ;
  154.  
  155.     if(MainGadgets[GD_GAD_GROUP_WRITE]->Flags & GFLG_SELECTED)
  156.         FileInfo->fib_Protection |= FIBF_GRP_WRITE;
  157.     else
  158.         FileInfo->fib_Protection &= ~FIBF_GRP_WRITE;
  159.  
  160.     if(MainGadgets[GD_GAD_GROUP_EXECUTE]->Flags & GFLG_SELECTED)
  161.         FileInfo->fib_Protection |= FIBF_GRP_EXECUTE;
  162.     else
  163.         FileInfo->fib_Protection &= ~FIBF_GRP_EXECUTE;
  164.  
  165.     if(MainGadgets[GD_GAD_GROUP_DELETE]->Flags & GFLG_SELECTED)
  166.         FileInfo->fib_Protection |= FIBF_GRP_DELETE;
  167.     else
  168.         FileInfo->fib_Protection &= ~FIBF_GRP_DELETE;
  169.  
  170.     if(MainGadgets[GD_GAD_OTHER_READ]->Flags & GFLG_SELECTED)
  171.         FileInfo->fib_Protection |= FIBF_OTR_READ;
  172.     else
  173.         FileInfo->fib_Protection &= ~FIBF_OTR_READ;
  174.  
  175.     if(MainGadgets[GD_GAD_OTHER_WRITE]->Flags & GFLG_SELECTED)
  176.         FileInfo->fib_Protection |= FIBF_OTR_WRITE;
  177.     else
  178.         FileInfo->fib_Protection &= ~FIBF_OTR_WRITE;
  179.  
  180.     if(MainGadgets[GD_GAD_OTHER_EXECUTE]->Flags & GFLG_SELECTED)
  181.         FileInfo->fib_Protection |= FIBF_OTR_EXECUTE;
  182.     else
  183.         FileInfo->fib_Protection &= ~FIBF_OTR_EXECUTE;
  184.  
  185.     if(MainGadgets[GD_GAD_OTHER_DELETE]->Flags & GFLG_SELECTED)
  186.         FileInfo->fib_Protection |= FIBF_OTR_DELETE;
  187.     else
  188.         FileInfo->fib_Protection &= ~FIBF_OTR_DELETE;
  189. }
  190.